#ifndef	_KEY_TREE_VIEW_H_
#define	_KEY_TREE_VIEW_H_

#include "common.h"


class	Key_Tree_View : public Gtk::TreeView
{
public:
	Key_Tree_View();
	virtual ~Key_Tree_View();
	sigc::signal<void, const Gtk::TreeModel::Path & , Gtk::TreeViewColumn *> edit_selected_;
	sigc::signal<void, const Gtk::TreeModel::iterator &> delete_key_selected_;
	sigc::signal<void, const Gtk::TreeModel::iterator &> key_whole_path_copy_;
	sigc::signal<void, const Gtk::TreeModel::iterator &> key_path_exported_;
	sigc::signal<void, const Gtk::TreeModel::iterator &> create_key_;

protected:
	virtual bool 	on_button_release_event(GdkEventButton* event);
	virtual void	on_create_key();
	virtual void	on_expanded();
	virtual void	on_delete();
	virtual void	on_key_path_copy();
	virtual void 	on_key_path_exported();
	virtual void	on_tree_row_activated(const Gtk::TreeModel::Path & path, Gtk::TreeViewColumn *column);

private:
	Gtk::Menu popup_menu_;
};


#endif
